package br.com.sgh.beans;

import br.com.sgh.dao.FuncionarioDAO;
import br.com.sgh.entidade.Funcionario;
import br.com.sgh.util.FacesContextUtil;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

@ManagedBean
@SessionScoped
public class UsuarioLogadoBean implements Serializable {

    private Funcionario funcionario;

    private String usuario;

    private FuncionarioDAO funcionarioDao() {
        FuncionarioDAO<Funcionario> dao = new FuncionarioDAO<Funcionario>(Funcionario.class, FacesContextUtil.getRequestSession());
        return dao;
    }

    private Funcionario usuarioLogado() {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            ExternalContext external = context.getExternalContext();
            String login = external.getRemoteUser();

            List<Funcionario> lista = funcionarioDao().verificaLogin(login);
            Funcionario f = lista.get(0);
            return f;
        } catch (Exception e) {
            return null;
        }
    }

    public Funcionario getFuncionario() {
        /* if (funcionario == null) {
         funcionario = usuarioLogado();
         }*/
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public String getUsuario() {
        try {
            usuario = usuarioLogado().getNome();
        } catch (Exception e) {
            usuario = " VISITANTE";
        }
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

}
